package cn.xopencode.score.api.rpc;

import cn.xopencode.common.framework.vo.CommonResult;
import cn.xopencode.common.framework.vo.PageResult;
import cn.xopencode.score.api.rpc.demand.dto.ScoreAllDTO;
import cn.xopencode.score.api.rpc.demand.dto.ScoreReqDTO;
import cn.xopencode.score.api.rpc.demand.dto.ScoreRespDTO;
import cn.xopencode.securityservice.rpc.activity.dto.ActivityCreateReqDTO;
import cn.xopencode.securityservice.rpc.suggest.dto.SuggestCreateReqDTO;
import cn.xopencode.securityservice.rpc.violate.dto.ViolateCreateReqDTO;

import java.util.List;


/**
 * 积分查询情况
 */
public interface ScoreRpc {

    /**
     * 获取个人积分详细情况
     * @param id 积分编号
     * @return 个人分数详情
     */
    CommonResult<List<ScoreAllDTO>> getScoreDetails(String id);

    /**
     * 获取积分列表
     * @param
     * @return 积分列表数据
     */
    CommonResult<PageResult<ScoreRespDTO>> getPageScore(ScoreReqDTO scoreReqDTO);


    /**
     * 获取日期下的用户积分
     * @param scoreReqDTO 日期
     * @return
     */
    CommonResult<ScoreRespDTO> getScoreFromDate(ScoreReqDTO scoreReqDTO);

    /**
     * 创新与合理化建议
     * @param createDTO
     * @return
     */
    Double addSuggestScore(SuggestCreateReqDTO createDTO);

    /**
     * 安全活动与技能比武情况
     * @param createDTO
     * @return
     */
    Double addActivityScore(ActivityCreateReqDTO createDTO);

    /**
     * 反三违
     * @param createDTO
     * @return
     */
    void updateViolateScore(ViolateCreateReqDTO createDTO);


}
